建立完環境後,就是要開發阿,不然要要幹嘛!?來在 Odoo 上實作圖書館管理系統吧!
還沒建置成功 Odoo 開發環境的可以參考前面的 Day06, Day07 文章
我們將在 Odoo 上實作一個小而美,具體而微的圖書館管理系統,先來說說裡面比較重要的幾個元素:
書的基本資訊,比較要注意的是 International Standard Book Number (ISBN),是確定書籍唯一的國際編號。
人的權限由高而低,管理員能修改書籍的狀態,而會員能租借書籍,大眾則能看到書籍的狀況。
確保 Odoo Server 有偵測到自定義的 Addons 資料夾
建立 Moudle 資料夾及 manifest (描述檔案)
完成 Module 資訊
在上兩個單元我們知道了,Odoo 有預設的 Addons 搜尋路徑 (用終端機啟動 Odoo 時能看到),也學過要如何新增,最簡化步驟建造資料庫和設定檔。
$ mkdir ~/work15/library
$ source ~/work15/env15/bin/activate
(env15) $ odoo scaffold library_app ~/work15/library
你會看到
# tree ~/work15/library/
/root/work15/library/
`-- library_app
|-- __init__.py
|-- __manifest__.py
|-- controllers
| |-- __init__.py
| `-- controllers.py
|-- demo
| `-- demo.xml
|-- models
| |-- __init__.py
| `-- models.py
|-- security
| `-- ir.model.access.csv
`-- views
|-- templates.xml
`-- views.xml
這不就是個標準的 Model-View-Controller (MVC) 架構嗎!?
再來我們要在 manifest.py 新增模組的描述,以下是初始時的樣子:
# -*- coding: utf-8 -*-
{
'name': "library_app",
'summary': """
Short (1 phrase/line) summary of the module's purpose, used as
subtitle on modules listing or apps.openerp.com""",
'description': """
Long description of module's purpose
""",
'author': "My Company",
'website': "http://www.yourcompany.com",
# Categories can be used to filter modules in modules listing
# Check https://github.com/odoo/odoo/blob/15.0/odoo/addons/base/data/ir_module_category_data.xml
# for the full list
'category': 'Uncategorized',
'version': '0.1',
# any module necessary for this one to work correctly
'depends': ['base'],
# always loaded
'data': [
# 'security/ir.model.access.csv',
'views/views.xml',
'views/templates.xml',
],
# only loaded in demonstration mode
'demo': [
'demo/demo.xml',
],
}
接下來我們將深入探討這些欄位。